Computer systems often have the ability to execute different parts of the same process, e.g., different tasks, concurrently. A scheduler or other programming entity in the computer system may manage the concurrent execution of the tasks of a process. As the use of the concurrent execution ability by processes increases, the scheduling demands of different processes may become markedly different such that a scheduler may not execute all processes as efficiently as possible. While some schedulers may have parameters or policies that may be configured by a process, the parameters and policies may not be sufficient to optimize the scheduler for execution of a particular process.
A scheduler often forms an integral portion of a runtime environment of the computer system. As a result, the ability of runtime developers to implement increased flexibility in the scheduler may be limited by the overall complexity of the runtime environment. This difficulty reduces the likelihood that improvements to a scheduler can keep pace with increasing process demands for flexibility in concurrent execution.